const obj = {
  a: 3,
  b: 4,
};

const observer = (data, item, value) => {
  Object.defineProperty(data, item, {
    get() {
      return value;
    },
    set(val) {
      console.log(item + "的值从" + value + "变成了" + val);
      value = val;
    },
  });
};

Object.keys(obj).forEach((item) => {
  observer(obj, item, obj[item]);
});

// console.log(obj.a);
obj.a = 10;
// console.log(obj.a);
// console.log(obj.b);
setTimeout(() => {
  obj.b = 20;
}, 2000);
